package com.lyncs.ods.resp;

import com.fasterxml.jackson.databind.PropertyNamingStrategy;
import com.fasterxml.jackson.databind.annotation.JsonNaming;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.experimental.Accessors;

import java.math.BigDecimal;
import java.time.LocalDateTime;
import java.util.List;

/**
 * @author alex
 * @date 2022/4/03 15:14
 * @description
 */
@Data
@Accessors(chain = true)
@JsonNaming(PropertyNamingStrategy.SnakeCaseStrategy.class)
public class DeliverSettleLogResp {

    @ApiModelProperty(value = "账款结算信息")
    List<SettlementShortInfoResp> settlementInfos;

    @ApiModelProperty("账单款项明细")
    BillInfo billInfo;

    @Data
    @Accessors(chain = true)
    @JsonNaming(PropertyNamingStrategy.SnakeCaseStrategy.class)
    public static class BillInfo {

        @ApiModelProperty(value = "账款名称")
        private String name;

        @ApiModelProperty(value = "账款状态：1.未结算;2.部分结算;3.已结算")
        private Integer status;

        @ApiModelProperty(value = "账款总金额")
        private BigDecimal totalAmount;

        @ApiModelProperty(value = "已结算金额")
        private BigDecimal settledAmount;

        @ApiModelProperty(value = "未结算金额")
        private BigDecimal unsettledAmount;

        @ApiModelProperty(value = "货币")
        private String currency;

        @ApiModelProperty(value = "未结算金额")
        private List<Fee> feeInfos;
    }

    @Data
    @Accessors(chain = true)
    @JsonNaming(PropertyNamingStrategy.SnakeCaseStrategy.class)
    public static class Fee {
        @ApiModelProperty("款项名称")
        private String feeName;

        @ApiModelProperty("款项金额")
        private BigDecimal feeAmount;

        @ApiModelProperty("备注")
        private String remark;
    }
}
